编译指示
FENV_ACCESS (C++11)
on(1) #pragma STDC FENV_ACCESS on
off(2) #pragma STDC FENV_ACCESS off
访问浮点环境
如果设置为 on,则程序会通知编译器它可能会访问 浮点环境 来测试它的 状态标志 (异常)或者运行在 控制模式 下而不是默认模式。
如果设置为 off,则编译器可能会做一些特定的优化来破坏这些测试和模式的改变,因此访问之前描述的 浮点环境 的话,会导致 未定义 行为。
这个编译指示的状态是 on 或 off 取决于编译器设置和库实现。
这个编译指示声明应该出现在:
- 在任何外部声明外 :它的作用持续到遇到另一个 FENV_ACCESS 编译指示,或直到 编译单元 结束。
- 在复合语句中 :这种情况下,它会优先于所有显示的声明和语句。它的作用持续到遇到另一个 FENV_ACCESS 编译指示(例如在一个内嵌的复合语句中),或直到复合语句的结束。复合语句结束后,编译指示的状态会重新被存储为进入它之前的状态。
如果这个编译指示出现在其他上下文中,则行为未定义。
当状态被这个编译指示直接改变时,浮点控制模式 (例如 舍入方向 )拥有它们默认的设置,但 浮点标志 的状态是不确定的。
另请参见
函数 | 描述 |
---|---|
fegetenv | 获得浮点环境 (函数) |
fesetenv | 设置浮点环境 (函数) |
当前内容版权归 chrisniael 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 chrisniael .